//	--------------------------------------------------------------------
//	Copyright(C) 2006,2007 Zhao Yukun. All rights reserved.
//	This file is a part of the Xeres system.
//	Xeres 2007
//	Contact : xeres.engine@gmail.com
//	$(reservedInfo)
//	$(reservedDeclaration)
//	--------------------------------------------------------------------
///	@file	<common_vertex_decl.h>
///	@path	~/src/graphics/common/
///	@date	2009/01/11
///	@desc	.

#pragma once

#include "xeres.h"

#include "graphics/IVertexLayout.h"

namespace xeres {

	namespace vd
	{
		/*! 
			\struct	ScreenColor
			\brief	Screen space canvas vertex.
		*/
		struct ScreenColor
		{
			FLOAT x, y, z, rhw;
			DWORD color;

			/// \brief	Get declaration.
			static const std::vector<VertexSlotDeclaration>& decl( void );
		};

		/*! 
			\struct	ScreenTexture
			\brief	Screen space canvas with texture.
		*/
		struct ScreenTexture
		{
			FLOAT x, y, z, rhw;
			FLOAT u, v;

			/// \brief	Get declaration.
			static const std::vector<VertexSlotDeclaration>& decl( void );
		};

		/*! 
			\struct	ScreenColorTexture
			\brief	Screen space canvas with texture.
		*/
		struct ScreenColorTexture
		{
			FLOAT x, y, z, rhw;
			DWORD color;
			FLOAT u, v;

			/// \brief	Get declaration.
			static const std::vector<VertexSlotDeclaration>& decl( void );
		};

	} // namespace vd
	
} // namespace xeres
